1. Technical Field
This invention relates generally to network computing systems, more particularly, to an improved method and system for remotely waking a computer from a network, and still more particularly to an improved method and system for remotely waking a computer from a network wherein the likelihood of an unauthorized remotely initiated wake up is diminished.
2. Description of the Related Art
Computer networks are commonly used in offices or corporate environments to interconnect personal computers. Well-known local area networks (LANs), such as Ethernet, Token Ring and ARCnet, are widely used to connect a group of computers and other devices that are dispersed over a relatively limited area, such as an office or building, and new LANs continue to be developed. These local area networks provide an efficient and economical way for personal computers to share information and peripherals.
Of course, computer networks are not limited to the confines of an office or building. Smaller networks are commonly interconnected into wide area networks (WANs), such as the Internet, to provide a communications link over a larger area. The Internet is actually a collection of networks that share the same namespace and use the TCP/IP protocols. Originally developed for the military in 1969, the Internet now connects over four hundred networks and tens of thousands of nodes in over forty-two countries. It is estimated that the Internet is now accessed by more than 10 million people every day, and that perhaps as many as 513 million people have access to the Internet.
As is well known in the art, the transmission of data packets across networks is governed by a set of rules called “transport protocols.” In order for two computers in a local area network to communicate with one another, each computer must use the proper transport protocol for the particular network. During the last decade, many different transport protocols have evolved for different networks. For example, TCP/IP is the transport protocol widely used in UNIX-based networks and with Ethernet 802.3 LANs; IPX/SPX is the transport protocol used by Novell Corporation's NetWare software; NetBEUI is the local-area transport protocol developed by IBM to operate underneath Microsoft's NetBIOS network interface; DECnet is the transport protocol used by Digital Equipment Corporation for linking computer systems to DECnet-based networks; AppleTalk is the transport protocol developed by Apple Computer, Inc. for linking computer systems to Apple Macintosh network systems; and XNS is the transport protocol developed by Xerox Corporation that was used in early Ethernet networks. These transport protocols, which are all well known in the art, are often implemented as drivers which can be loaded into and removed from a computer system.
Networks, such as the Internet, continue to grow in size. Often network size increases when one network, such as a LAN, connects to another network, such as another LAN or the Internet, using a router or other similar means. As a result of the increasing size, redundant paths are created for data to travel on the network. The redundant paths may create a “routing loop” where a packet, while in transit across the network, is sent by one router to a router that previously had seen the packet. If a packet entered a routing loop, the packet could conceivable exists on the network forever. To prevent endless circulation, the IP protocol uses a time-to-live (TTL) counter in the packet. Each time a packet reaches a router the TTL is reduced by one. The machine transmitting a packet has no control over the behavior of the TTL as the packet travels across the network. When the TTL reaches zero, the router drops the packet.
In order to connect to a network, a computer is usually provided with one or more network interface cards that provide a data link to the network. Each network interface card has a unique address, referred to herein as its “destination address,” which enables each computer to be individually addressed by any other computer in the network. The destination address is typically, but not always, a 12 digit hexadecimal number (e.g., 00AA00123456) that is programmed into non-volatile memory located on the network interface card and is generally hidden from the user's view.
The destination address of a computer is analogous to a person's social security number in that, although every person in the country is assigned a unique social security number, it is generally not known to other people and rarely used in normal communications. Likewise, the destination address of a computer is a more primitive means of identifying the computer, and users are not expected to know and remember the destination address of every computer in the network. Instead, every computer generally has a computer name (commonly corresponding to the user's name and/or machine location) that is more widely known. When a user desires to send a message to another computer, the transport protocol in the network is responsible for converting the computer name into the corresponding destination address to facilitate communicating between the two computers.
Because wide area networks (WANs) often include a collection of a wide variety of machines, organizations and individuals, these networks must provide the means to exchange data between dissimilar machines and across many different transport protocols. To accomplish this, each transport protocol has its own layer of addressing information that enables it to exchange electronic mail, data files, programs, etc. between one LAN and another LAN. As a data packet is transmitted across different networks, the addressing information for one transport protocol is layered upon the addressing information for the next transport protocol.
Therefore, the address of an individual, computer, or organization on the Internet has several layers or components including the domain name or user name, the underlying identifiers used by the transport protocol(s) that govern the data exchange, and the actual destination address. Each transport protocol is designed to extract the appropriate destination address to ensure that each message packet is routed to its intended recipient.
To illustrate the distinctions between the various layers of addressing information, consider an individual computer user in Atlanta who wishes to send an e-mail message to a destination computer in Seattle where the computer in Atlanta is connected to an Internet service provider and the computer in Seattle is connected to a corporate local area network. Generally, the user in Atlanta will know, or can readily obtain, the recipient's computer name (e.g., www.recipient.com), but will not know the recipient's Internet address or actual destination address. Nonetheless, the transport protocols will abstract the destination address from the message packet as it is transmitted across the network.
Therefore, the user in Atlanta will simply type the recipient's computer name, www.recipient.com, as the address of the destination computer. The message packet will be sent via the Internet, where the TCP/IP transport protocol will convert the computer name into a more primitive Internet address, which is a 32-bit value that identifies the host's network ID and host ID within the network, e.g., 123.456.7.8. The message packet is then routed to the corporate LAN in Seattle, where a component in the LAN, typically a server, will convert the Internet address into the destination address of the recipient's network interface card, e.g., 00AA00123456.
Meanwhile, the network interface card of the destination computer is designed to continually monitor incoming packets over the network. When the network interface card detects an incoming packet containing its destination address, the network interface card will identify itself as the intended recipient of the packet.
In full power mode communications transmissions occur between two computers automatically and completely invisible to the user. However, efforts are now being made to extend the use of network computing to power management applications, in which one or more of the computers may be operating in a low power mode. In particular, there is increasing demand for power management systems that minimize the energy consumption of computer systems, yet still allow the possibility for receiving remote communications from other computers via a network. These power management systems must provide a mechanism for “waking” a remote computer system from the network in order to receive the communications.
Generally stated, “power management” refers to a computer system's ability to conserve or otherwise manage the power that it consumes. Although power management concerns were originally focused on battery-powered portable computers, these concerns now extend to AC-powered “desktop” computer systems as well. For example, the United States government now provides strong incentives to those in the computer industry to promote energy efficiency in computers.
More particularly, power management refers to the ability to dynamically power down a computer or certain devices when they are not in use, thereby conserving energy. A computer in this condition is referred to herein as being in a “power down” state or condition. Power is then restored to the computer or devices when they are required for use. This process is often referred to as “waking” the computer.
A computer in a power down state may be in a “suspended power state” or a “hibernated power state.” In general, a computer in a suspended power state is similar to a computer with all power removed, except that power to memory is maintained and dynamic RAM (DRAM) is refreshed. In addition, the operations of the computer are held in a suspended power state for a suspend operation, whereas the system loses its current operational state on a general power down.
A computer in a hibernated power state is similar to the suspended power state, except that the memory states are written to disk and the entire computer system is shut down.
Although there are several existing power management systems, most are not designed to operate in a network computing environment. Further, those that are designed to operate in a network are limited in their usefulness. For example, in one prior system for waking a computer from a local area network, a remote wake frame or “magic packet” is defined that includes the destination address repeated 16 times somewhere within the packet. While the computer is in the power down state, its network interface card continually monitors all incoming message packets for one that has its destination address repeated 16 times. When the network interface card detects an incoming packet with this address sequence, the network interface card transmits a signal to the operating system to wake the computer.
A significant limitation with this system is that it provides little, if any, security. Anyone with access to the network may send a packet to wake sleeping systems, permitting nuisance attacks where an unauthorized computer wakes systems needlessly on the network.
Attempts to solve the security issues associated with waking a remote computer have focused on using passwords in the magic packet. However, passwords only provide limited protection. Once discovered the password may be used by any computer on the network. An unauthorized system may uncover the password by any number of means, including “brute force” or “sniffing.” Brute force password discovery is defined as trying all possibilities until the password is found. Sniffing refers to a machine listening for all packets on the network, including those addressed to other machines. If the sniffed packet is determined to be a magic packet the password is extracted.
Therefore, there is a need for an improved method and system of waking a remote computer on a network where the likelihood of an unauthorized remotely initiated wake up is diminished.